The Math Expression Node (Expr) allows the entry of a textual mathematical expression, like 2*x + y + z. The node creates an input for each variable and a single output for the result of the expression.
It has a variety of uses, including: unit conversion, control-signal mapping, wave-shaping or building custom oscillators. It can also be used when doing math with individual nodes is too cumbersome.
The Math Expression Node includes the following operators and functions:
Operators
| (x) | parenthetical grouping | |
| -x | negation | |
| x^y | exponentiation: xy | |
| x * y, x / y | multiplication, division | |
| x + y, x - y | addition, subtraction | |
| x < y, x > y | less, greater. 1 if true, 0 if false | |
| x == y | equality. 1 if true, 0 if false | |
| x ? a : b | conditional. b if x is 0, otherwise a |
Functions
Trigonometric functions (angles are in radians)
| sin(angle) | sine |
| cos(angle) | cosine |
| tan(angle) | tangent |
| asin(x) | arc sine |
| acos(x) | arc cosing |
| atan(x) | arc tangent |
| pow(x,y) | xy. Can also use x^y as shorthand. |
| exp(x) | ex. Can also use e^x as shorthand. |
| ln(x) | ln |
| log2(x) | log2x |
| log10(x) | log10x |
| exp2(x) | 2x. Can also use 2^x as shorthand. |
| sqrt(x) | square root |
| abs(x) | absolute value |
| floor(x) | rounds down to the nearest integer |
| ceil(x) | rounds up to the nearest integer |
| fract(x) | x - floor(x) |
| mod(x,y) | remainder of x / y |
| min(x,y) | returns the lesser of x and y |
| max(x,y) | returns the greater of x and y |
| clamp(x,a,b) | restricts x to the interval [a, b] |
| step(x, edge) | 1 if x > edge, otherwise 0. Hard step. |
| smoothstep(x, a, b) | smooth step from 0 to 1 on the interval [a, b] |